@echo off
chcp 65001 >nul
title 验证后台持续更新
color 0A

echo.
echo ========================================
echo    验证后台持续更新功能
echo ========================================
echo.

echo 第1步：重新编译并安装应用
echo.

choice /C YN /M "是否需要重新编译安装"

if errorlevel 2 goto :skip_install
if errorlevel 1 goto :install

:install
echo.
echo 正在编译...
call gradlew assembleDebug

if errorlevel 1 (
    echo ✗ 编译失败
    pause
    exit /b 1
)

echo.
echo 正在安装...
adb install -r app\build\outputs\apk\debug\app-debug.apk

echo.
echo 授予权限...
adb shell appops set com.example.munidingwei android:mock_location allow

echo ✓ 安装完成

:skip_install
echo.
echo ========================================
echo 第2步：启动应用并设置模拟位置
echo ========================================
echo.

adb shell am start -n com.example.munidingwei/.MainActivity

echo.
echo 请在手机上操作：
echo 1. 点击地图任意位置设置模拟位置
echo 2. 确认看到地址信息
echo.
echo 设置完成后按任意键继续...
pause

echo.
echo ========================================
echo 第3步：开启日志监控
echo ========================================
echo.

echo 正在启动日志监控...
echo 你应该看到：
echo - "启动持续位置更新任务"
echo - "后台协程已启动"
echo - "已持续更新 5 次" (每5秒一次)
echo.
echo 按 Ctrl+C 停止监控
echo.

start "位置更新日志监控" cmd /k "adb logcat -s LocationService:D MockLocationProvider:D"

echo.
echo ========================================
echo 第4步：将应用退到后台
echo ========================================
echo.

echo 请在手机上：
echo 1. 按Home键将应用退到后台
echo 2. 或者切换到其他应用
echo.
echo 然后观察日志窗口，是否继续有更新？
echo.

pause

echo.
echo ========================================
echo 第5步：测试其他应用
echo ========================================
echo.

echo 停止所有应用...
adb shell am force-stop com.tencent.mm
adb shell am force-stop com.baidu.BaiduMap
adb shell am force-stop com.autonavi.minimap

echo ✓ 已停止

echo.
echo 等待5秒...
timeout /t 5 >nul

echo.
echo 现在请打开微信或百度地图测试
echo.
echo 观察日志窗口，应该能看到：
echo - 应用请求位置时，持续更新仍在运行
echo - "已持续更新 X 次"
echo.

pause

echo.
echo ========================================
echo 第6步：查看系统位置
echo ========================================
echo.

echo 当前系统Mock位置：
adb shell dumpsys location | findstr "last mock location"

echo.
echo ========================================
echo 测试完成
echo ========================================
echo.

echo 💡 判断标准：
echo.
echo ✅ 成功的标志：
echo - 日志持续输出"已持续更新 X 次"
echo - 即使应用退到后台，日志也在更新
echo - 微信/地图能快速获取到模拟位置
echo.
echo ✗ 失败的标志：
echo - 应用退后台后，日志停止
echo - 其他应用获取不到位置
echo - 显示"正在获取位置"一直转圈
echo.

pause

